package cartes;

import comportement.IncidentFacheux;
import comportement.MalusMonstre;
import java.util.ArrayList;
import plateau.Joueur;

public class Monstre extends Carte {

    /*
     * Attributs
     */
    public int nbNiveaux;
    public int nbTresors;
    public int niveau;
    public String type;
    public int bonusCombat;
    public int choix;

    /*
     * Constructeur
     */
    public Monstre(String nom, String description, int categorie, ArrayList<IncidentFacheux> i, MalusMonstre m, int nbNiveaux, int nbTresors, int niveau, int bonusCombat, String chemin , int choix) {
        // Constructeur de Carte
        super(nom, description, categorie, chemin);

        // Attributs génériques
        this.incidentFacheux = new ArrayList<IncidentFacheux>(i);
        this.malusMonstre = m;
        this.actionCarte = null;
        this.actionClasse = null;

        // Attributs spécifiques
        this.nbNiveaux = nbNiveaux;
        this.nbTresors = nbTresors;
        this.niveau = niveau;
        this.bonusCombat = 0;
        this.choix = 0;    
    }

    /*
     * Méthodes
     */
    @Override
    public void combattre() {

    }

    @Override
    public void equiper() {

    }

    @Override
    public void fuir() {

    }

    @Override
    public void utiliser() {

    }

    @Override
    public void utiliser(Joueur j) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void utiliser(Joueur j, Joueur j2) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
    
    

    @Override
    public void utiliserPouvoir() {
        
    }

    public String toString() {       
        return super.toString() + " -= Monstre =- Niveau : " + this.niveau;
    }
    
    

    /*
     * Getters & Setters
     */

    public int getNbNiveaux() {
        return nbNiveaux;
    }

    public void setNbNiveaux(int nbNiveaux) {
        this.nbNiveaux = nbNiveaux;
    }

    public int getNbTresors() {
        return nbTresors;
    }

    public void setNbTresors(int nbTresors) {
        this.nbTresors = nbTresors;
    }

    public int getNiveau() {
        return niveau;
    }

    public void setNiveau(int niveau) {
        this.niveau = niveau;
    }

    public int getBonusCombat() {
        return bonusCombat;
    }

    public void setBonusCombat(int bonusCombat) {
        this.bonusCombat = bonusCombat;
    }

    public void upBonusCombat(int n){
        this.bonusCombat += n;
    }

    public String getCheminImage() {
        return cheminImage;
    }
    
    public int getChoix() {
        return choix;
    }

    public void setChoix(int choix) {
        this.choix = choix;
    }

    @Override
    public boolean equipable() {
        return false;
    }

    @Override
    public boolean utilisable() {
        return false;
    }
}